#!/usr/bin/env python
# -*- coding: utf-8 -*-

# 按要求使用推导式完成以下1-9各题目，没有使用推导式不得分。，以下各小题每题目10分
# n = [1,2,1,2,1,2,1,2,3,4,5,3,-3,-10,-6]
# s = ['apple', 'pear', 'banana']
# d1 = {'apple': 40, 'banana': 34,'pear': 21 }
# d2 = {'apple': 1, 'banana': 2,'pear': 3 }
#1)生成新列表要求返回列表n中的每个数的立方
[x ** 3 for x in n]

#2)生成新列表要求把列表n中小于0的数过滤掉
[x for x in n if n >= 0]

#3)生成新列表要求返回列表n中所有能被3和5整除的数
[x for x in n if x % 3 == 0 and x % 5 == 0]

#4)生成新列表要求过滤掉s列表中长度大于4的字符串，并将剩下的转换成大写字母
[x.upper() for x in s if len(x) <= 4]

#5)生成新字典，数据的每一项为d1字典的key和d2字典的value
#6)生成新字典将d1字典中的value值乘以2
{k: v * 2 for k, v in d1.items()}

#7)生成新字典将d1字典中值能被5整除的键值对返回
{k: v for k, v in d1.items() if v  % 5 == 0}

#8)生成新集合数据为n列表中每项数据的100次方
{k ** 100 for k in n}

#9)生成新集合数据为s列表中每项数据的第一个字符
{k[0] for k in s}
# 10)写一个删除列表中重复元素的函数，要求去重后元素相对位置保持不变 要求使用生成器实现
